#ifndef HEADER_FILE_CRYPT
#define HEADER_FILE_CRYPT

#ifdef __cplusplus
extern "C" {
#endif

#include "aes.h"

typedef struct EncryptionFileHeader
{
	unsigned long MessageSize;
	unsigned char userNotes[255] ;
}
EncFileHeader
;


void encryptFile(unsigned char* inputFIleName,unsigned char* outputFileName, AES_KEY* encryptionKey);
void decryptFile(unsigned  char* inputFIleName, unsigned char* outputFileName, AES_KEY* decryptionKey);

void writeHeaderToOutputFile(FILE* output_file, FILE* message_file);
void readHeaderFromInputFIle(FILE* input_file, EncFileHeader* header);

long getFileSize(FILE* file);

int aes_data_encrypt(char* cipher,const char* message,AES_KEY* encryptionKey,size_t size);
int aes_data_decrypt(char* message,const char* cipher,AES_KEY* decryptionKey,size_t size);
int findBytesToPad(size_t size);
void addPaddingToData(const char* input, char* output , size_t currentSize,size_t numberOfBytesToPad);

#ifdef __cplusplus
}
#endif



#endif
